#pragma once
/***********************************************************************************************
COPYRIGHT 2011 Mafahir Fairoze

This file is part of Neural++.
(Project Website : http://mafahir.wordpress.com/projects/neuralplusplus)

Neural++ is a free software. You can redistribute it and/or modify it under the terms of
the GNU General Public License as published by the Free Software Foundation, either version 3
of the License, or (at your option) any later version.

Neural++ is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License <http://www.gnu.org/licenses/> for more details.

***********************************************************************************************/

namespace NeuralPlusPlus
	{
	namespace Core
		{
		namespace SOM

			{
			/// <summary>
			/// Lattice Topology of the position neurons in a Kohonen Layer
			/// </summary>
			enum LatticeTopologyType
				{
				// Arrangement of neurons in a rectangular lattice
				//
				//            0 0 0 0 0 0
				//            0 0 0 * 0 0
				//            0 0 * O * 0
				//            0 0 0 * 0 0
				//            0 0 0 0 0 0
				//
				// The four immediate neighbors of 'O' are shown as '*'

				/// <summary>
				/// Each neuron has four immediate neighbors
				/// </summary>
				Rectangular = 0,



				// Arrangement of neurons in a hexagonal lattice
				//
				//            0 0 0 0 0
				//             0 0 * * 0
				//            0 0 * O * 0
				//             0 0 * * 0 0
				//              0 0 0 0 0
				//
				// The six immediate neighbors of 'O' are shown as '*'

				/// <summary>
				/// Each neuron has six immediate neighbors
				/// </summary>
				Hexagonal = 1,
				};
			}

		}
	}